package com.cgx.tablet.beeper.utils;

import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * Created by cgx on 2018/9/25.
 */

public class JSONHelper {

    /**
     *  转成JavaBean
     * @param jsonString JSON格式字符串
     * @param clazz JavaBean.class
     * @param <T> 泛型
     * @return JavaBean实例
     */
    public static <T> T parse2Bean(String jsonString, Class<T> clazz){
        return new Gson().fromJson(jsonString, clazz);
    }

    /**
     * 转成JSON字符串
     * @param bean JavaBean实例
     * @param <T> 泛型
     * @return JSON格式字符串
     */
    public static <T> String parse2String(T bean){
        return new Gson().toJson(bean);
    }

    /**
     * 转成数组
     * @param jsonString JSON格式字符串
     * @param clazz JavaBean[].class(数组类)
     * @param <T> 泛型
     * @return JavaBean[]
     */
    public static <T> T[] parse2Array(String jsonString, Class<T[]> clazz){
        return new Gson().fromJson(jsonString, clazz);
    }

    /**
     * 转成List
     * @param jsonString JSON格式字符串
     * @param clazz JavaBean[].class
     * @param <T> 泛型
     * @return List<JavaBean>
     */
    public static <T> List<T> parse2List(String jsonString, Class<T[]> clazz){
        if (jsonString == null || jsonString.equals("null"))
            return new ArrayList<>();
        else {
            T[] list = parse2Array(jsonString, clazz);
            return Arrays.asList(list);
        }
    }
}
